#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;

  vector<bool> flag(n + 1, false);
  for (int i = 1; i <= n; i++) {
    int a, b;
    cin >> a >> b;
    if (a == 0 && b == 0) {
      flag[i] = true;

    } else if (flag[a] || flag[b])
      flag[i] = true;
  }
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    ans += flag[i];
  }
  cout << ans << endl;
  return 0;
}

/*
错误原因：

问题是只进行了一次遍历，无法处理技能之间的依赖关系。
例如，如果技能A依赖技能B，而技能B依赖技能C，当技能C初始可学习时，
在单次遍历中技能B会被标记，但技能A不会被重新检查。

*/